The field of invention relates to reliable message delivery between three parties in a network of mobile services.
A network of mobile devices requires the interaction of a three party communication, that is, the mobile device, the service being used, and the Network Service Provider (NSP) or some other entity that enables a communication link between mobile devices and a provider of services. Within most applications for mobile computers, these devices have limited resources but can perform some operations in disconnected mode. The services accessed by the mobile device reside in some computer system called servers. The NSP is only a channel for using resources located in the network and it enables access to such resources by providing connectivity and authentication.
The problem solved by this invention arises when a server is unavailable to perform a request. If the resources in the server are available to process a request, the request is processed, and an acknowledgment is sent back to the mobile device indicating completion of the service. However, if the server resource being accessed is not available, the mobile device receives a message indicating that the request could not be completed. The mobile device must reconnect at a later point in time and it must issue the request again.
Herein we disclose a method for reliable message delivering between three parties in a network of mobile devices. This method consists of augmenting the services provided by an NSP with the known method of store-and-forward and a token which is stored in the mobile computer. This token represents an identifier of the last point-of-presence used for connecting to the network and it is used for inquiring about previous requests. Thereby, guaranteeing delivery of requests in spite of lack of resources availability.
Using this method, when a mobile computer connects to the network through an NSP at a specific point-of-presence and it makes a request for a resource; if the resource is available the request is serviced, and the mobile device receives an acknowledgment indicating completion of the task. However, if the resource is not available, a system (or algorithm) at the point-of-presence performs the following functions:
logs the request in persistent storage on behalf of the mobile computer,
sends a token containing the address of the point-of-presence. This token is stored in the mobile computer.
After that, the mobile computer may disconnect from the network. Once the resource becomes available, a system at the point-of-presence sends one or multiple requests to the server and receives acknowledgment of completion. The system at the point-of-presence stores the acknowledgment for later inquire.
When the mobile computer connects again to the network through the same NSP at the same or a different point-of-presence, the mobile device sends the last token stored in its local storage, the system at the point-of-presence inquires for pending requests at the location the token indicates. If the requests are completed, acknowledgment is sent to the mobile computer. If the requests are not yet completed, the requests migrate to the new point-of-presence and a new token identifying the new point-of-presence is sent to and stored at the mobile computer. This process is invoked each time the mobile computer connects to the network, until all pending requests are completed.
This method guarantees minimum usage of resources at the mobile device because it only stores the last token. All the processing is performed in a system at the point-of-presence. This method also guarantees that requests are distributed in the network wherein no central point is a bottleneck. The requests migrate along the network with the mobile computer.